u`
eLXgсF11́u\́v
Q[JKFimageIuWFNg̃vpeBA摜̏dˍ킹Ȃ

QlFmNX̉ǗiÓIo̊pɂtRXgN^̔p~E{j

//IuWFNgwK RPGK6E
using System;
class Madoshi { //m\NX
    //pf[^o
    protected int mp; //MP(JvZ(p.166)̂߂publicɂȂ)
    protected int hp; //HP(V)
    protected static Random rnd = new Random(); //pRandomNX̃CX^X𐶐
    //pȂf[^o
    int id; //mԍ
    static int num = 0; //m̐
    //ftHgRXgN^
    public Madoshi() { 
        mp = rnd.Next(10); //0`9̊Ԃ̃_Ȑ𓾂MP̏lƂ
        hp = 10 + rnd.Next(10); //10`19̊Ԃ̃_Ȑ𓾂HP̏lƂ
        num++; //yǉzm̐JEgAbv
        id = num; //yύXzm̐Ŗmԍ߂
    }
    //vpeB
    public int HP { //HPԂvpeB
        get { return hp; } 
    }
    //\bh
    public virtual void DispInfo() { //m̏\鉼z\bh
        Console.Write("m{0}(HP={1} MP={2})", id, hp, mp); //\(sȂ)
    }
    public int Fight() { //mȂUAȂ̃_[WlԂ
        if (hp <= 0) return 0; //łꍇ0Ԃ
        if (rnd.Next(2) == 1) { //m1/2Ŗ@UǂI
            int j = rnd.Next(5) + 1; //MP1`5̗
            DispInfo(); // m̏\
            Console.WriteLine("͏MP" + j + "̖@!");
            if (mp < j) { // MPsH
                Console.WriteLine("MPȂ!");
                return 0; // Ȃ̃_[W=0Ԃ(UI)
            } else { // MP[H
                Console.WriteLine("Ȃ" + j * 4 + "̃_[W󂯂!");
                mp -= j; //MP
                return j * 4; //Ȃ̃_[W=MP4{Ԃ(UI)
            }
        } else { //ʏUH
            int k = rnd.Next(5) + 1; //U͂1`5̗
            DispInfo(); //m̏\
            Console.WriteLine("̍U!");
            Console.WriteLine("Ȃ" + k + "̃_[W󂯂!");
            return k; //Ȃ̃_[W=1`50Ԃ(UI)
        }
    }
    public void Damage() { //mȂ_[W炤
        int k = 5 + rnd.Next(5); //Ȃ̍U͂5`9̗
        Console.WriteLine("Ȃ̍U!");
        DispInfo(); //m̏\(U󂯂̖mHP\)
        Console.WriteLine("" + k + "̃_[W^!");
        hp -= k; //mHP_E
    }
}
class Daimado : Madoshi { //喂NX(mNX̔hNX)
    public Daimado() { //RXgN^
        mp = 40 + rnd.Next(10); //40`49̊Ԃ̃_Ȑ𓾂MP̏lƂ
        hp = 40 + rnd.Next(10); //40`49̊Ԃ̃_Ȑ𓾂HP̏lƂ
    }
    public override void DispInfo() { //喂̏\
        Console.Write("喂(HP={0} MP={1})", hp, mp); //\(sȂ)
    }
}
class minimadou { //Q[{̂̃NX
    public static void Main() { //Q[is郁\bh
        Random rnd = new Random(); //pRandomNX̃CX^X𐶐
        string ans = null; //͗p
        // 퓬Jn
        int myhp = 40 + rnd.Next(21); //ȂHP40+040+20ɂ
        Madoshi[] m = { new Madoshi(),new Madoshi(),new Madoshi() }; //yύXzSm𐶐
        foreach (var w in m) { //SmČJԂ
            w.DispInfo(); //m̏\
            Console.WriteLine("ꂽB");
        }
        // 퓬(ȂʂCmʂ܂ŌJԂ)
        while (myhp > 0 && (m[0].HP > 0 || m[1].HP > 0 || m[2].HP > 0)) { //ȂƂǂꂩ̖mHP
            Console.Write("cHP{0}łBǂU܂H(1/2/3:m1,2,3 0:߂)F", myhp); 
            ans = Console.ReadLine(); //񓚂𓾂
            int ansi = int.Parse(ans) - 1; //ϊ-1m̓Y0`2𓾂
            if (ansi == 0 || ansi == 1 || ansi == 2) { //mUH
                if (m[ansi].HP > 0) { //Ă閂mH
                    m[ansi].Damage(); //mU
                    if(m[ansi].HP <= 0) { //m[]|H
                        Console.WriteLine("m{0}|!", ans);
                    }
                } else { 
                    Console.WriteLine("m{0}͂Ȃ!", ans);
                }
                for (int i = 0; i < 3 && myhp > 0; i++) { //SmɂČJԂ
                    myhp -= m[i].Fight(); //m̍UIȂHP}CiX
                }
            } else { // ߂H
                if (rnd.Next(2) == 0) { //m50
                    Console.WriteLine("邱Ƃł!");
                    break; // JԂI(p.125)
                } else {
                    Console.WriteLine("Ȃ!");
                    for (int i = 0; i < 3 && myhp > 0; i++) { //SmɂČJԂ
                        myhp -= m[i].Fight(); //m̍UIȂHP}CiX
                    }
                }
            }
            if (myhp <= 0) { //ȂHPȂH
                Console.WriteLine("Ȃ͎ɂ܂B");
                return; //Q[I
            }
        }
        if (ans != "0") { //̂łȂ
            Console.WriteLine("Rl̖m|I");
        }
        //{XJn
        Daimado d = new Daimado(); //喂𐶐
        d.DispInfo(); //喂̏\
        Console.WriteLine("ꂽB");
        int newhp = 40 + rnd.Next(10); //VHP4049Ō߂
        if (myhp < newhp) { //񕜂H
            myhp = newhp; //HP
            Console.WriteLine("HP񕜁I");
        }
        // 퓬(ȂʂC喂ʂ܂ŌJԂ)
        while (myhp > 0 && d.HP > 0) { //ȂƑ喂HP
            Console.Write("cHP{0}łBU܂H(1:U 0:߂)F", myhp); 
            ans = Console.ReadLine(); //񓚂𓾂
            if (ans == "1") { //喂UH
                d.Damage(); //喂U
                if(d.HP <= 0) { //喂|H
                    Console.WriteLine("喂|!");
                    break; //Q[I
                }
                myhp -= d.Fight(); //喂̍UIȂHP}CiX
            } else { // ߂H
                if (rnd.Next(2) == 0) { //m50
                    Console.WriteLine("邱Ƃł!");
                    break; //Q[I
                } else {
                    Console.WriteLine("Ȃ!");
                    myhp -= d.Fight(); //喂̍UIȂHP}CiX
                }
            }
            if (myhp <= 0) { //ȂHPȂH
                Console.WriteLine("Ȃ͎ɂ܂B");
                break; //Q[I
            }
        }
    }
}

p.275 \̂Ƃ

EC̍\͕̂̕ϐzP܂Ƃ߂ɂf[^\
E΂āAC#̍\̂͌yʃNXNX̎dlꕔČŷŁACꂩ̈ڐAɂΉ
EāuȂɂꂽvɒڂƗǂ
E`F struct \̖ {c}
E\̂̃o̓f[^o(NXƓl)A\bhAvpeBACfNT
EC^[tFCXł
ȄF struct \̖ : C^[tFCX,c {c}
E\̂̐F
@ẼNXpłȂ
@Ef[^ȍłȂip鑤ōsƁj
@ÊȂRXgN^͎̂݁iOŋLq͋֎~j
@EIuWFNg̈Qƌ^ł͂Ȃl^Ȃ̂ŁAƃRs[

p.276 struct01.cs

//p.276 struct01.cs
using System;
struct MyStruct { //\̂̒`
    public int x; //錾̂݉\ŏ͂łȂ
    public void show()
    {
        Console.WriteLine("x = {0}", x);
    }
}
class struct01
{
    public static void Main()
    {
        MyStruct ms; //\̕ϐ̐錾ƍ\̃IuWFNg̐inewsvj
        ms.x = 10; //\̕ϐ.oŗp
        ms.show(); //\̕ϐ.\bh(c)ŗp
    }
}

p.277 ÓIo\

ENX̏ꍇƑSl
Eu\̖.ovŗpł
E܂AÓIołΏ\
EāAz̐ÓIołΗvf̐\

p.277 struct02.cs

//p.277 struct02.cs
using System;
struct MyStruct
{
    public static int x = 10; //ÓIołΏ\
    static int[] myarray = new int[10]; //ÓIoȂ̂ŏ(vf̐)\
    public static void show() { //ÓI\bh
        Console.WriteLine("x = {0}", x);
    }
}
class struct02
{
    public static void Main()
    {
        MyStruct.show(); //\̃IuWFNg𐶐ɍ\̖.oŗp
        MyStruct.x = 20; //
        MyStruct.show(); //
    }
}

AWKFp.277 struct02.cs

EpĂȂmyarray̗vfMain\bhŗpĂ݂悤
ËׂɃCfNTǋL悤
E\̂ɐÓIłȂzf[^oyourarrayǉAvf̐Main\bhōs悤ɂ悤

쐬

//AWKFp.277 struct02.cs
using System;
struct MyStruct
{
    public static int x = 10; //ÓIołΏ\
    static int[] myarray = new int[10]; //ÓIoȂ̂ŏ(vf̐)\
    public static void show() { //ÓI\bh
        Console.WriteLine("x = {0}", x);
    }
    public int this[int n] { //yǉzCfNT
        get { return myarray[n]; } set { myarray[n] = value; }
    }
    public int[] yourarray; //yǉzÓIoł͂Ȃ̂Ŕz͐錾̂
}
class struct02
{
    public static void Main()
    {
        MyStruct.show(); //\̃IuWFNg𐶐ɍ\̖.oŗp
        MyStruct.x = 20; //
        MyStruct.show(); //
        MyStruct a = new MyStruct(); //yǉzCfNTp̍\̃IuWFNg𐶐
        a[0] = 100; //yǉzCfNToRő
        Console.WriteLine("a[0] = {0}", a[0]); //yǉzCfNToRŗp
        a.yourarray = new int[3]; //yǉzvf̐͗pōs
        a.yourarray[0] = 200; //yǉz
        Console.WriteLine("a.yourarray[0] = {0}", a.yourarray[0]); //yǉzp
    }
}

p.278 RXgN^\

ÊȂRXgN^͎̂݁iOŋLq͋֎~j
EȂAIuWFNg̈Qƌ^ł͂Ȃl^Ȃ̂ŁAƃRs[

p.278 struct03.cs

//p.278 struct03.cs
using System;
struct MyStruct {
    public int x;
    //public MyStruct() { //̂ȂRXgN^͒`s(̂)
    //    x = 0;
    //}
    public MyStruct(int a) { //̂RXgN^͒`\
        x = a;
    }
}
class struct03 {
    public static void Main() {
        MyStruct ms = new MyStruct(); //̈̂ȂRXgN^Ă
        Console.WriteLine("ms.x = {0}", ms.x); //ms.x0ŏĂ
        MyStruct ms2 = new MyStruct(100); //Ö̂RXgN^Ă
        Console.WriteLine("ms2.x = {0}", ms2.x); //ms2.x100ŏĂ
        MyStruct ms3; //MyStruct^ϐms3錾(newsv)
        ms3 = ms2; // ms2̒lms3ɑ(l^Ȃ̂ŃIuWFNg̃Rs[ɂȂ)
        Console.WriteLine("ms3.x = {0}", ms3.x); // Rms3.x̒l100
        ms3.x = 50; //ms3.x̒l50ɕύX
        // ms3.x̒l50ɕύXĂms2.x͉e󂯂ȂiRs[Ȃ̂Łj
        Console.WriteLine("ms2.x = {0}", ms2.x);
    }
}

p.280 struct04.cs

//p.280 struct04.cs
using System;
struct MyStruct { //\̂̒`
    public int x;
}
class MyClass { //NX̒`
    public int x;
}
class struct04 {
    public static void Main() {
        MyStruct ms1 = new MyStruct(); //\̃IuWFNg̐
        MyStruct ms2; //\̕ϐ̐錾
        ms1.x = 20;
        ms2 = ms1; //\̃IuWFNgRs[(ms1ms2͕ʂ̃IuWFNgw)
        Console.WriteLine("ms2.x = {0}", ms2.x); //Rs[̂20
        ms2.x = 10; //Rs[ʂĂ
        Console.WriteLine("ms1.x = {0}", ms1.x); //Rs[̌Ȃ̂ŕς炸20
        MyClass mc1 = new MyClass(); //NXIuWFNg̐
        MyClass mc2; //Qƕϐ̐錾
        mc1.x = 20;
        mc2 = mc1; //QƂ̃Rs[Ȃ̂mc1mc2͓IuWFNgw
        Console.WriteLine("mc2.x = {0}", mc2.x); //IuWFNgȂ̂20
        mc2.x = 10; //QƌoRŏ̂
        Console.WriteLine("mc1.x = {0}", mc1.x); //̃IuWFNg̒lς
    }
}

eLXgю\Fp.282u\̂ŃC^[tFCXv

Q[JKFImageIuWFNg̃vpeBA摜̏dˍ킹Ȃ

e[}W tH[TCY̕ύX̗}~

EFormNXFormBorderStylevpeBɁASystem.Windows.Forms.FormBorderStyle񋓌^̗񋓎qɂシ邱ƂŁAtH[̉̃X^CύXł
EtH[TCY̕ύX̗}~ɂ́AFormBorderStyle.Fixed3D񋓎qpƗǂ

e[}X ImageIuWFNg̃vpeB

E`悵摜̑傫́AImageNXWidthAHeightvpeBœ̂ŁAełɁAsxėpقύXɋvOɂȂ

KV tH[TCY̕ύX̗}~ImageIuWFNg̃vpeB

EtH[TCY̕ύX̗}~悤
EImageIuWFNgWidthAHeightvpeB̒lbZ[W{bNXɕ\ĊmF悤

쐬

//KV tH[TCY̕ύX̗}~ImageIuWFNg̃vpeB
using System; //tH[AvP[VɕK{
using System.Windows.Forms; //tH[AvP[VɕK{
using System.Drawing; //Imagep
class Program : Form { //FormNXp
    Image myimage = Image.FromFile("back.bmp"); //摜̓Ǎ
    protected override void OnPaint(PaintEventArgs e) { //Form̃\bhI[o[Ch
        base.OnPaint(e); //܂AFormNXɂ郁\bh̓e({ĕ`揈)s
        e.Graphics.DrawImage(myimage, 0, 0); //摜\
        MessageBox.Show("W = " + myimage.Width + " H = " + myimage.Height); //yǉz
    }
    static void Main() { //public̎w͔C
        Program p = new Program(); //ptH[̃CX^X𐶐
        p.Width = 660; //CX^XWidthvpeBɕ
        p.Height = 520; //CX^XHeightvpeBɍ
        p.Text = "Game"; //CX^XTextvpeBɃtH[
        p.ControlBox = false; //ControlBox\ɂ
        p.FormBorderStyle = FormBorderStyle.Fixed3D; //yǉztH[TCYύX֎~
        Application.Run(p); //CX^Xʂɏo
    }
}

e[}10 摜̏dˍ킹

EtH[ւ̕`ł́Aɕ`悵̂ɂȂ
EāAwi摜`悵ĂAACe摜Kvȏŕ`悷Ɨǂ
EȂAGIF`ȂǂœߐFݒ肵摜̏ꍇA`揇ɒ

KW 摜̏dˍ킹

Ewi摜Q[pɍւ悤
  https://ha221.rundog.org/wp-content/uploads/backb.bmp
EߐFݒ肵ACe摜g
@https://rundog.org/si/enemy.gif
EߐFݒ肵ʗp摜g
@https://rundog.org/si/burn.gif
EACe摜ʂ̒ɂAmFĂAʗp摜̏ɔzu悤
ESɕ`悷@F
@@ wi摜̒SW𓾂F Xwi摜̔̕AYwi摜̍̔
@A ACe摜̍W𓾂F XACe摜̔̕AYACe摜̍̔

쐬

//KW 摜̏dˍ킹
using System; //tH[AvP[VɕK{
using System.Windows.Forms; //tH[AvP[VɕK{
using System.Drawing; //Imagep
class Program : Form { //FormNXp
    Image backb = Image.FromFile("backb.bmp"); //yύXzwi摜̓Ǎ
    Image enemy = Image.FromFile("enemy.gif"); //yǉzACe摜̓Ǎ
    Image burn = Image.FromFile("burn.gif"); //yǉzʗp摜̓Ǎ
    protected override void OnPaint(PaintEventArgs e) { //Form̃\bhI[o[Ch
        base.OnPaint(e); //܂AFormNXɂ郁\bh̓e({ĕ`揈)s
        e.Graphics.DrawImage(backb, 0, 0); //yύXzwi摜(0,0)`
        int mx = backb.Width / 2, my = backb.Height / 2; //yǉzW𓾂
        e.Graphics.DrawImage(enemy, mx - enemy.Width / 2, my - enemy.Height / 2); //yǉzACe摜𒆉ɕ`
        e.Graphics.DrawImage(burn, mx - burn.Width / 2, my - burn.Height / 2); //yǉzACe摜𒆉ɕ`
    }
    static void Main() { //public̎w͔C
        Program p = new Program(); //ptH[̃CX^X𐶐
        p.Width = 660; //CX^XWidthvpeBɕ
        p.Height = 520; //CX^XHeightvpeBɍ
        p.Text = "Game"; //CX^XTextvpeBɃtH[
        p.ControlBox = false; //ControlBox\ɂ
        p.FormBorderStyle = FormBorderStyle.Fixed3D; //tH[TCYύX֎~
        Application.Run(p); //CX^Xʂɏo
    }
}

Q[JK\FL[{[hꂽ𓾂AI
